package com.game.raceroom.player
{
	import com.game.raceroom.player.item.BaseItem;
	import com.util.HashMap;
	import com.util.Vector;
 
	
	public class UserBag  
	{
		public var max_size=0;
		public var items:HashMap=new HashMap;
		public function UserBag(size:int){
			 this.max_size=size;
		}
		public function addItem(got:BaseItem):Boolean{
		
					items.put(got.index,got);
					trace("taken " +this.getBagTaken());
					return true;
		
		}
		public function addItem1(got:BaseItem):Boolean{
			var gotItm:BaseItem=got.clone();
			if(gotItm.ipile<=1){
				gotItm.index=items.size();
					items.put(items.size(),gotItm);
					return true;
			}else{
				for(var i:int=0;i<items.size();i++){
					item=(BaseItem)(items.getObjByKey(i));
					if(!item)continue;
					if(item.itype==gotItm.itype && item.iid==gotItm.iid){
						if(item.iqtt<item.ipile){
							item.iqtt+=gotItm.iqtt;
							if(item.iqtt>item.ipile){
								gotItm.iqtt=item.iqtt-item.ipile;
								item.iqtt=item.ipile;
							}else{
								gotItm.iqtt=0;
							}
							if(gotItm.iqtt<=0)return true;
						}
					}
				}
				
					var item:BaseItem=new BaseItem;
					item.itype=gotItm.itype;
					item.iid=gotItm.iid;
					item.idesc=gotItm.idesc;
					item.iname=gotItm.iname;
					item.iqtt=gotItm.iqtt;
					item.ipile=gotItm.ipile;
					item.iprice=gotItm.iprice;
					item.index=items.size();
					items.put(items.size(),item);	
				
		        

			}
			return false;
		}
		public function getItemByItemId(itemid:int):BaseItem{
				for(var i:int=0;i<items.size();i++){
					var item:BaseItem=(BaseItem)(items.getObjByKey(i));
					if(!item)continue;
					if(item.iid==itemid){
						return item;
					}
				}
				return null;
		}
		public function getItemCount(id:int):int{
			var count:int=0;
				for(var i:int=0;i<items.size();i++){
					var item:BaseItem=(BaseItem)(items.getObjByKey(i));
					if(!item)continue;
					if(item.iid==id){
						count+=item.iqtt;
					}
				}
				return count;
		}
		public function removeOneItem(id:int):void{
				for(var i:int=0;i<items.size();i++){
					var item:BaseItem=(BaseItem)(items.getObjByKey(i));
					if(!item)continue;
					if(item.iid==id){
						 item.iqtt--;
						 if(item.iqtt<=0){
						 	items.remove(i);
						 }
						 return;
					}
				}
		}
		public function removeItem(gotItm:BaseItem):void{
		 
					if(!gotItm)return;
					if(gotItm.iuse)return;
					items.remove(gotItm.index);
					return; 
					 
			 
		}
		public function removeItemByBagId(gotItm:BaseItem):void{
 
 				for(var i:int=0;i<items.size();i++){
					var item:BaseItem=(BaseItem)(items.getObjByKey(i));
					if(!item)continue;
					if(item.itype==gotItm.itype && item.iid==gotItm.iid){
							items.remove(i);
							return; 
					}
				}
			  
			 
		}
		public function getItem(i:int):BaseItem{
			return (BaseItem)(items.getObjByKey(i));
		}
		public function size():int{
			return this.items.size();
		}
        public function initBag(items:Array):void{
        	
        }
     
        public function changeBag(items:Array):void{
        	
        }
        public function getBagTaken():int{
        	return items.size();
        }
        public function clone():UserBag{
        	var bag:UserBag=new UserBag(this.max_size);
        	for(var i=0;i<max_size;i++){
        		  var gotItm:BaseItem=this.getItem(i);
				  if(!gotItm)continue;
				  var gotItm1:BaseItem=gotItm.clone();
				  trace("gotItm "+gotItm1.index);
				    bag.addItem(gotItm1);
        	}
        	return bag;

        }
	}
}